package com.yzmoney.common.util;

import java.io.*;
import java.net.URL;
import java.net.URLDecoder;

public class FileUtil {

    /**
     * 读取文件
     *
     * @param path
     * @return
     */
    public static String readFile(String path) {
        BufferedReader reader = null;
        String laststr = "";
        try {
            FileInputStream fileInputStream = new FileInputStream(path);
            InputStreamReader inputStreamReader = new InputStreamReader(
                    fileInputStream, "UTF-8");
            reader = new BufferedReader(inputStreamReader);
            String tempString = null;
            while ((tempString = reader.readLine()) != null) {
                laststr += tempString;
            }
            reader.close();
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            if (reader != null) {
                try {
                    reader.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
        return laststr;
    }

    //获取 web工程项目下的WEB-INF路径
    public static String getWebInfoPath() {
        URL url = FileUtil.class.getProtectionDomain().getCodeSource().getLocation();

        String path = url.toString();
        int index = path.indexOf("WEB-INF");

        if (index == -1) {
            index = path.indexOf("classes");
        }
        if (index == -1) {
            index = path.indexOf("bin");
        }
        path = path.substring(0, index);

        if (path.startsWith("zip")) {//当class文件在war中时，此时返回zip:D:/...这样的路径
            path = path.substring(4);
        } else if (path.startsWith("file")) {//当class文件在class文件中时，此时返回file:/D:/...这样的路径
            path = path.substring(6);
        } else if (path.startsWith("jar")) {//当class文件在jar文件里面时，此时返回jar:file:/D:/...这样的路径
            path = path.substring(10);
        }
        try {
            path = URLDecoder.decode(path, "UTF-8");
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        }
        if ("/".equals(File.separator)) {
            path = "/" + path;
        }
        return path + "WEB-INF/";
    }

    public static void main(String[] args) {
        System.out.println(getWebInfoPath());
        System.out.println(File.separator);
    }
}
